package j.util.jdbc.simple.core.operations;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;

/**
 * jdbc插入操作的方法集
 * @author 刘军海
 * @version 2011-9-4 下午8:01:00
 *
 */
public interface SimpleJdbcInsertOperations {
	
	/**
	 * 执行插入操作，若args没有指定插入字段列表中的值，则设为null值
	 * 若返回-1，表示有重复
	 * @param args
	 * @return
	 */
	<T> int insert(Connection connection, Class<T> clazz, Map<String, Object> args)throws SQLException;
	
	/**
	 * 执行插入操作，且返回自动形成的值
	 * @param args
	 * @return
	 */
	<T> Number insertAndReturnKey(Connection connection, Class<T> clazz, Map<String, Object> args)throws SQLException;
	
	/**
	 * 批量执行插入操作，参数由args中的map提供，若没有指定其字段，则设为null值
	 * @param args
	 * @return
	 */
	<T> int[] insertBatch(Connection connection, Class<T> clazz, Map<String, Object>[] args)throws SQLException;
}
